const fetchConferences = async () => {
  try {
    console.log('开始获取会议列表...')
    const params = {
      page: currentPage.value - 1, // 后端分页从0开始
      size: pageSize.value,
      title: searchForm.value.title || null,
      location: searchForm.value.location || null,
      status: searchForm.value.status !== '' ? searchForm.value.status : null,
      startDate: searchForm.value.dateRange?.[0] || null,
      endDate: searchForm.value.dateRange?.[1] || null
    }
    console.log('请求参数:', params)
    
    const response = await request({
      url: '/api/conferences',
      method: 'get',
      params: params
    })
    
    console.log('会议列表接口返回数据:', response)
    
    // 处理后端返回的分页数据格式
    if (response) {
      // 直接从返回的数据中获取内容和总数
      conferences.value = response.content || []
      total.value = response.totalElements || 0
      filteredConferences.value = conferences.value
      
      // 获取数据后检查状态
      if (conferences.value.length > 0) {
        checkAndUpdateConferenceStatus()
      }
    } else {
      console.error('返回数据格式不正确:', response)
      ElMessage.error('获取会议列表失败：数据格式不正确')
    }
  } catch (error) {
    console.error('获取会议列表失败:', error)
    if (error.response) {
      ElMessage.error('获取会议列表失败: ' + (error.response.data?.message || '服务器响应错误'))
    } else if (error.request) {
      ElMessage.error('获取会议列表失败: 服务器无响应，请检查网络连接')
    } else {
      ElMessage.error('获取会议列表失败: ' + error.message)
    }
  }
}

const handleSubmit = async () => {
  try {
    // 表单验证
    if (!conferenceForm.value.title?.trim()) {
      ElMessage.error('请输入会议标题')
      return
    }
    if (!conferenceForm.value.location?.trim()) {
      ElMessage.error('请输入会议地点')
      return
    }
    if (!validateTime()) {
      ElMessage.error('结束时间必须至少晚于开始时间15分钟')
      return
    }
    if (!conferenceForm.value.conferencePublisher?.trim()) {
      ElMessage.error('请输入发布人姓名')
      return
    }

    // 准备提交的数据
    const conferenceData = {
      ...conferenceForm.value,
      title: conferenceForm.value.title.trim(),
      location: conferenceForm.value.location.trim(),
      conferencePublisher: conferenceForm.value.conferencePublisher.trim(),
      startTime: conferenceForm.value.startTime,
      endTime: conferenceForm.value.endTime
    }

    console.log('准备提交的会议数据:', conferenceData)

    if (conferenceForm.value.id) {
      // 更新会议
      const response = await request({
        url: `/api/conferences/${conferenceForm.value.id}`,
        method: 'put',
        data: conferenceData
      })
      
      if (response) {
        ElMessage.success('会议信息更新成功')
        dialogVisible.value = false
        fetchConferences()
      }
    } else {
      // 创建会议
      const response = await request({
        url: '/api/conferences',
        method: 'post',
        data: conferenceData
      })
      
      if (response) {
        ElMessage.success('会议创建成功')
        dialogVisible.value = false
        fetchConferences()
      }
    }
  } catch (error) {
    console.error('操作失败:', error)
    ElMessage.error('操作失败: ' + (error.response?.data?.message || error.message))
  }
}

const clearCache = async () => {
  try {
    // 清除组件状态
    conferences.value = []
    filteredConferences.value = []
    total.value = 0
    currentPage.value = 1
    pageSize.value = 10
    
    // 重置搜索表单
    searchForm.value = {
      title: '',
      location: '',
      status: '',
      dateRange: []
    }
    
    // 清除本地存储的相关数据
    localStorage.removeItem('token')
    localStorage.removeItem('userInfo')
    localStorage.removeItem('conferenceListState')
    localStorage.removeItem('conferenceSearchForm')
    
    // 清除所有相关的localStorage数据
    Object.keys(localStorage).forEach(key => {
      if (key.includes('conference') || key.includes('token') || key.includes('user')) {
        localStorage.removeItem(key)
      }
    })

    // 强制刷新页面
    window.location.reload()
  } catch (error) {
    console.error('清除缓存失败:', error)
    ElMessage.error('清除缓存失败，请手动刷新页面')
  }
}

// 修改分页大小处理方法
const handleSizeChange = (val) => {
  pageSize.value = val
  currentPage.value = 1  // 重置到第一页
  fetchConferences()
}

// 修改当前页处理方法
const handleCurrentChange = (val) => {
  currentPage.value = val
  fetchConferences()
}

// 修改搜索处理方法
const handleSearch = () => {
  currentPage.value = 1  // 搜索时重置到第一页
  fetchConferences()
}

// 修改重置搜索方法
const resetSearch = () => {
  searchForm.value = {
    title: '',
    location: '',
    status: '',
    dateRange: []
  }
  currentPage.value = 1  // 重置到第一页
  fetchConferences()
}

// 在组件挂载时调用
onMounted(() => {
  console.log('组件已挂载，准备清除缓存...')
  clearCache()
})

// 添加一个手动清除缓存的方法
const handleClearCache = () => {
  ElMessageBox.confirm('确定要清除缓存并刷新页面吗？', '提示', {
    confirmButtonText: '确定',
    cancelButtonText: '取消',
    type: 'warning'
  }).then(() => {
    clearCache()
  }).catch(() => {
    ElMessage.info('已取消清除缓存')
  })
} 